home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 23 / AACD 23.iso / AACD / Magazine / YAM / Source / includes / mui / NListtree_mcc.h < prev    next >
Encoding:
C/C++ Source or Header  |  2001-04-25  |  21.5 KB  |  669 lines

  1. /*h
  2. Class:      MCC_NListtree
  3. Copyright:  (c)1999-2000 by Carsten Scholling
  4. Author:     Carsten Scholling
  5. Contact:    cs@aphaso.de
  6. Contents:   Registered class of the Magic User Interface.
  7. h*/
  8.  
  9.  
  10. /*** Include stuff ***/
  11.  
  12. #ifndef NLISTTREE_MCC_H
  13. #define NLISTTREE_MCC_H
  14.  
  15. #ifndef LIBRARIES_MUI_H
  16. #include "libraries/mui.h"
  17. #endif
  18.  
  19.  
  20. /*** MUI Defines ***/
  21.  
  22. #define MUIC_NListtree  "NListtree.mcc"
  23. #define NListtreeObject MUI_NewObject(MUIC_NListtree
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30. /*** Attributes ***/
  31.  
  32. #define MUIA_NListtree_Active                               0xfec81201  // *** [.SGN]
  33. #define MUIA_NListtree_ActiveList                           0xfec81202  // *** [..GN]
  34. #define MUIA_NListtree_CloseHook                            0xfec81203  // *** [IS..]
  35. #define MUIA_NListtree_ConstructHook                        0xfec81204  // *** [IS..]
  36. #define MUIA_NListtree_DestructHook                         0xfec81205  // *** [IS..]
  37. #define MUIA_NListtree_DisplayHook                          0xfec81206  // *** [IS..]
  38. #define MUIA_NListtree_DoubleClick                          0xfec81207  // *** [ISGN]
  39. #define MUIA_NListtree_DragDropSort                         0xfec81208  // *** [IS..]
  40. #define MUIA_NListtree_DupNodeName                          0xfec81209  // *** [IS..]
  41. #define MUIA_NListtree_EmptyNodes                           0xfec8120a  // *** [IS..]
  42. #define MUIA_NListtree_Format                               0xfec8120b  // *** [IS..]
  43. #define MUIA_NListtree_OpenHook                             0xfec8120c  // *** [IS..]
  44. #define MUIA_NListtree_Quiet                                0xfec8120d  // *** [.S..]
  45. #define MUIA_NListtree_CompareHook                          0xfec8120e  // *** [IS..]
  46. #define MUIA_NListtree_Title                                0xfec8120f  // *** [IS..]
  47. #define MUIA_NListtree_TreeColumn                           0xfec81210  // *** [ISG.]
  48. #define MUIA_NListtree_AutoVisible                          0xfec81211  // *** [ISG.]
  49. #define MUIA_NListtree_FindNameHook                         0xfec81212  // *** [IS..]
  50. #define MUIA_NListtree_MultiSelect                          0xfec81213  // *** [I...]
  51. #define MUIA_NListtree_MultiTestHook                        0xfec81214  // *** [IS..]
  52. #define MUIA_NListtree_CopyToClipHook                       0xfec81217  // *** [IS..]
  53. #define MUIA_NListtree_DropType                             0xfec81218  // *** [..G.]
  54. #define MUIA_NListtree_DropTarget                           0xfec81219  // *** [..G.]
  55. #define MUIA_NListtree_DropTargetPos                        0xfec8121a  // *** [..G.]
  56. #define MUIA_NListtree_FindUserDataHook                     0xfec8121b  // *** [IS..]
  57. #define MUIA_NListtree_ShowTree                             0xfec8121c  // *** [ISG.]
  58. #define MUIA_NListtree_SelectChange                         0xfec8121d  // *** [ISGN]
  59.  
  60.  
  61. /*** Special attribute values ***/
  62.  
  63. #define MUIV_NListtree_Active_Off                           0
  64. #define MUIV_NListtree_Active_Parent                        -2
  65. #define MUIV_NListtree_Active_First                         -3
  66. #define MUIV_NListtree_Active_FirstVisible                  -4
  67. #define MUIV_NListtree_Active_LastVisible                   -5
  68.  
  69. #define MUIV_NListtree_ActiveList_Off                       0
  70.  
  71. #define MUIV_NListtree_AutoVisible_Off                      0
  72. #define MUIV_NListtree_AutoVisible_Normal                   1
  73. #define MUIV_NListtree_AutoVisible_FirstOpen                2
  74. #define MUIV_NListtree_AutoVisible_Expand                   3
  75.  
  76. #define MUIV_NListtree_CompareHook_Head                     0
  77. #define MUIV_NListtree_CompareHook_Tail                     -1
  78. #define MUIV_NListtree_CompareHook_LeavesTop                -2
  79. #define MUIV_NListtree_CompareHook_LeavesMixed              -3
  80. #define MUIV_NListtree_CompareHook_LeavesBottom             -4
  81.  
  82. #define MUIV_NListtree_ConstructHook_String                 -1
  83. #define MUIV_NListtree_ConstructHook_Flag_AutoCreate        (1<<15)
  84.  
  85. #define MUIV_NListtree_CopyToClipHook_Default               0
  86.  
  87. #define MUIV_NListtree_DestructHook_String                  -1
  88.  
  89. #define MUIV_NListtree_DisplayHook_Default                  -1
  90.  
  91. #define MUIV_NListtree_DoubleClick_Off                      -1
  92. #define MUIV_NListtree_DoubleClick_All                      -2
  93. #define MUIV_NListtree_DoubleClick_Tree                     -3
  94. #define MUIV_NListtree_DoubleClick_NoTrigger                -4
  95.  
  96. #define MUIV_NListtree_DropType_None                        0
  97. #define MUIV_NListtree_DropType_Above                       1
  98. #define MUIV_NListtree_DropType_Below                       2
  99. #define MUIV_NListtree_DropType_Onto                        3
  100. #define MUIV_NListtree_DropType_Sorted                      4
  101.  
  102. #define MUIV_NListtree_FindNameHook_CaseSensitive           0
  103. #define MUIV_NListtree_FindNameHook_CaseInsensitive         -1
  104. #define MUIV_NListtree_FindNameHook_Part                    -2
  105. #define MUIV_NListtree_FindNameHook_PartCaseInsensitive     -3
  106. #define MUIV_NListtree_FindNameHook_PointerCompare          -4
  107.  
  108. #define MUIV_NListtree_FindUserDataHook_CaseSensitive       0
  109. #define MUIV_NListtree_FindUserDataHook_CaseInsensitive     -1
  110. #define MUIV_NListtree_FindUserDataHook_Part                -2
  111. #define MUIV_NListtree_FindUserDataHook_PartCaseInsensitive -3
  112. #define MUIV_NListtree_FindUserDataHook_PointerCompare      -4
  113.  
  114. #define MUIV_NListtree_MultiSelect_None                     0
  115. #define MUIV_NListtree_MultiSelect_Default                  1
  116. #define MUIV_NListtree_MultiSelect_Shifted                  2
  117. #define MUIV_NListtree_MultiSelect_Always                   3
  118.  
  119.  
  120. #define MUIV_NListtree_ShowTree_Toggle                      -1
  121.  
  122.  
  123. /*** Structures & Flags ***/
  124.  
  125. struct MUI_NListtree_TreeNode {
  126.     struct  MinNode tn_Node;    // ***  To make it a node.
  127.     STRPTR  tn_Name;            // ***  Simple name field.
  128.     UWORD   tn_Flags;           // ***  Used for the flags below.
  129.     APTR    tn_User;            // ***  Free for user data.
  130. };
  131.  
  132.  
  133. #define TNF_OPEN                    (1<<0)
  134. #define TNF_LIST                    (1<<1)
  135. #define TNF_FROZEN                  (1<<2)
  136. #define TNF_NOSIGN                  (1<<3)
  137. #define TNF_SELECTED                (1<<4)
  138.  
  139.  
  140.  
  141. struct MUI_NListtree_TestPos_Result {
  142.     struct  MUI_NListtree_TreeNode *tpr_TreeNode;
  143.     UWORD   tpr_Type;
  144.     LONG    tpr_ListEntry;
  145.     UWORD   tpr_ListFlags;
  146.     WORD    tpr_Column;
  147.  
  148. };
  149.  
  150. #define tpr_Flags tpr_Type      /* OBSOLETE */
  151.  
  152.  
  153. /*** Methods ***/
  154.  
  155. #define MUIM_NListtree_Open                                 0xfec81101
  156. #define MUIM_NListtree_Close                                0xfec81102
  157. #define MUIM_NListtree_Insert                               0xfec81103
  158. #define MUIM_NListtree_Remove                               0xfec81104
  159. #define MUIM_NListtree_Exchange                             0xfec81105
  160. #define MUIM_NListtree_Move                                 0xfec81106
  161. #define MUIM_NListtree_Rename                               0xfec81107
  162. #define MUIM_NListtree_FindName                             0xfec81108
  163. #define MUIM_NListtree_GetEntry                             0xfec81109
  164. #define MUIM_NListtree_GetNr                                0xfec8110a
  165. #define MUIM_NListtree_Sort                                 0xfec8110b
  166. #define MUIM_NListtree_TestPos                              0xfec8110c
  167. #define MUIM_NListtree_Redraw                               0xfec8110d
  168. #define MUIM_NListtree_NextSelected                         0xfec81110
  169. #define MUIM_NListtree_MultiTest                            0xfec81111
  170. #define MUIM_NListtree_Select                               0xfec81112
  171. #define MUIM_NListtree_Copy                                 0xfec81113
  172. #define MUIM_NListtree_InsertStruct                         0xfec81114  // *** Insert a struct (like a path) into the list.
  173. #define MUIM_NListtree_Active                               0xfec81115  // *** Method which gives the active node/number.
  174. #define MUIM_NListtree_DoubleClick                          0xfec81116  // *** Occurs on every double click.
  175. #define MUIM_NListtree_PrevSelected                         0xfec81118  // *** Like reverse NextSelected.
  176. #define MUIM_NListtree_CopyToClip                           0xfec81119  // *** Copy an entry or part to the clipboard.
  177. #define MUIM_NListtree_FindUserData                         0xfec8111a  // *** Find a node upon user data.
  178. #define MUIM_NListtree_Clear                                0xfec8111b  // *** Clear complete tree.
  179.  
  180.  
  181. /*** Method structs ***/
  182.  
  183. struct MUIP_NListtree_Open {
  184.     ULONG MethodID;
  185.     struct MUI_NListtree_TreeNode *ListNode;
  186.     struct MUI_NListtree_TreeNode *TreeNode;
  187.     ULONG Flags;
  188. };
  189.  
  190.  
  191. struct MUIP_NListtree_Close {
  192.     ULONG MethodID;
  193.     struct MUI_NListtree_TreeNode *ListNode;
  194.     struct MUI_NListtree_TreeNode *TreeNode;
  195.     ULONG Flags;
  196. };
  197.  
  198.  
  199. struct MUIP_NListtree_Insert {
  200.     ULONG   MethodID;
  201.     STRPTR  Name;
  202.     APTR    User;
  203.     struct  MUI_NListtree_TreeNode *ListNode;
  204.     struct  MUI_NListtree_TreeNode *PrevNode;
  205.     ULONG   Flags;
  206. };
  207.  
  208.  
  209. struct MUIP_NListtree_Remove {
  210.     ULONG MethodID;
  211.     struct MUI_NListtree_TreeNode *ListNode;
  212.     struct MUI_NListtree_TreeNode *TreeNode;
  213.     ULONG Flags;
  214. };
  215.  
  216.  
  217. struct MUIP_NListtree_Clear {
  218.     ULONG MethodID;
  219.     struct MUI_NListtree_TreeNode *ListNode;
  220.     ULONG Flags;
  221. };
  222.  
  223.  
  224. struct MUIP_NListtree_FindName {
  225.     ULONG   MethodID;
  226.     struct  MUI_NListtree_TreeNode *ListNode;
  227.     STRPTR  Name;
  228.     ULONG   Flags;
  229. };
  230.  
  231.  
  232. struct MUIP_NListtree_FindUserData {
  233.     ULONG   MethodID;
  234.     struct  MUI_NListtree_TreeNode *ListNode;
  235.     APTR    User;
  236.     ULONG   Flags;
  237. };
  238.  
  239.  
  240. struct MUIP_NListtree_GetEntry {
  241.     ULONG MethodID;
  242.     struct MUI_NListtree_TreeNode *Node;
  243.     LONG  Position;
  244.     ULONG Flags;
  245. };
  246.  
  247.  
  248. struct MUIP_NListtree_GetNr {
  249.     ULONG MethodID;
  250.     struct MUI_NListtree_TreeNode *TreeNode;
  251.     ULONG Flags;
  252. };
  253.  
  254.  
  255. struct MUIP_NListtree_Move {
  256.     ULONG MethodID;
  257.     struct MUI_NListtree_TreeNode *OldListNode;
  258.     struct MUI_NListtree_TreeNode *OldTreeNode;
  259.     struct MUI_NListtree_TreeNode *NewListNode;
  260.     struct MUI_NListtree_TreeNode *NewTreeNode;
  261.     ULONG Flags;
  262. };
  263.  
  264.  
  265. struct MUIP_NListtree_Exchange {
  266.     ULONG MethodID;
  267.     struct MUI_NListtree_TreeNode *ListNode1;
  268.     struct MUI_NListtree_TreeNode *TreeNode1;
  269.     struct MUI_NListtree_TreeNode *ListNode2;
  270.     struct MUI_NListtree_TreeNode *TreeNode2;
  271.     ULONG Flags;
  272. };
  273.  
  274.  
  275. struct MUIP_NListtree_Rename {
  276.     ULONG   MethodID;
  277.     struct  MUI_NListtree_TreeNode *TreeNode;
  278.     STRPTR  NewName;
  279.     ULONG   Flags;
  280. };
  281.  
  282.  
  283. struct MUIP_NListtree_Sort {
  284.     ULONG MethodID;
  285.     struct MUI_NListtree_TreeNode *ListNode;
  286.     ULONG Flags;
  287. };
  288.  
  289.  
  290. struct MUIP_NListtree_TestPos {
  291.     ULONG MethodID;
  292.     LONG  X;
  293.     LONG  Y;
  294.     APTR  Result;
  295. };
  296.  
  297.  
  298. struct MUIP_NListtree_Redraw {
  299.     ULONG MethodID;
  300.     struct MUI_NListtree_TreeNode *TreeNode;
  301.     ULONG Flags;
  302. };
  303.  
  304.  
  305. struct MUIP_NListtree_Select {
  306.     ULONG MethodID;
  307.     struct MUI_NListtree_TreeNode *TreeNode;
  308.     LONG    SelType,
  309.             SelFlags,
  310.             *State;
  311. };
  312.  
  313.  
  314. struct MUIP_NListtree_NextSelected {
  315.     ULONG MethodID;
  316.     struct MUI_NListtree_TreeNode **TreeNode;
  317. };
  318.  
  319.  
  320. struct MUIP_NListtree_MultiTest {
  321.     ULONG MethodID;
  322.     struct MUI_NListtree_TreeNode *TreeNode;
  323.     LONG    SelType,
  324.             SelFlags,
  325.             CurrType;
  326. };
  327.  
  328.  
  329. struct MUIP_NListtree_Copy {
  330.     ULONG MethodID;
  331.     struct MUI_NListtree_TreeNode *SourceListNode;
  332.     struct MUI_NListtree_TreeNode *SourceTreeNode;
  333.     struct MUI_NListtree_TreeNode *DestListNode;
  334.     struct MUI_NListtree_TreeNode *DestTreeNode;
  335.     ULONG Flags;
  336. };
  337.  
  338.  
  339. struct MUIP_NListtree_InsertStruct {
  340.     ULONG   MethodID;
  341.     STRPTR  Name;
  342.     APTR    User;
  343.     STRPTR  Delimiter;
  344.     ULONG   Flags;
  345. };
  346.  
  347.  
  348. struct MUIP_NListtree_Active {
  349.     ULONG MethodID;
  350.     LONG Pos;
  351.     struct MUI_NListtree_TreeNode *ActiveNode;
  352. };
  353.  
  354.  
  355. struct MUIP_NListtree_DoubleClick {
  356.     ULONG MethodID;
  357.     struct MUI_NListtree_TreeNode *TreeNode;
  358.     LONG Entry;
  359.     LONG Column;
  360. };
  361.  
  362.  
  363. struct MUIP_NListtree_PrevSelected {
  364.     ULONG MethodID;
  365.     struct MUI_NListtree_TreeNode **TreeNode;
  366. };
  367.  
  368.  
  369. struct MUIP_NListtree_CopyToClip {
  370.     ULONG MethodID;
  371.     struct MUI_NListtree_TreeNode *TreeNode;
  372.     LONG Pos;
  373.     LONG Unit;
  374. };
  375.  
  376.  
  377.  
  378. /*** Special method values ***/
  379.  
  380. #define MUIV_NListtree_Close_ListNode_Root                  0
  381. #define MUIV_NListtree_Close_ListNode_Parent                -1
  382. #define MUIV_NListtree_Close_ListNode_Active                -2
  383.  
  384. #define MUIV_NListtree_Close_TreeNode_Head                  0
  385. #define MUIV_NListtree_Close_TreeNode_Tail                  -1
  386. #define MUIV_NListtree_Close_TreeNode_Active                -2
  387. #define MUIV_NListtree_Close_TreeNode_All                   -3
  388.  
  389.  
  390.  
  391. #define MUIV_NListtree_Exchange_ListNode1_Root              0
  392. #define MUIV_NListtree_Exchange_ListNode1_Active            -2
  393.  
  394. #define MUIV_NListtree_Exchange_TreeNode1_Head              0
  395. #define MUIV_NListtree_Exchange_TreeNode1_Tail              -1
  396. #define MUIV_NListtree_Exchange_TreeNode1_Active            -2
  397.  
  398. #define MUIV_NListtree_Exchange_ListNode2_Root              0
  399. #define MUIV_NListtree_Exchange_ListNode2_Active            -2
  400.  
  401. #define MUIV_NListtree_Exchange_TreeNode2_Head              0
  402. #define MUIV_NListtree_Exchange_TreeNode2_Tail              -1
  403. #define MUIV_NListtree_Exchange_TreeNode2_Active            -2
  404. #define MUIV_NListtree_Exchange_TreeNode2_Up                -5
  405. #define MUIV_NListtree_Exchange_TreeNode2_Down              -6
  406.  
  407.  
  408. #define MUIV_NListtree_FindName_ListNode_Root               0
  409. #define MUIV_NListtree_FindName_ListNode_Active             -2
  410.  
  411. #define MUIV_NListtree_FindName_Flag_SameLevel              (1<<15)
  412. #define MUIV_NListtree_FindName_Flag_Visible                (1<<14)
  413. #define MUIV_NListtree_FindName_Flag_Activate               (1<<13)
  414. #define MUIV_NListtree_FindName_Flag_Selected               (1<<11)
  415. #define MUIV_NListtree_FindName_Flag_StartNode              (1<<10)
  416. #define MUIV_NListtree_FindName_Flag_Reverse                (1<<9)
  417.  
  418.  
  419. #define MUIV_NListtree_FindUserData_ListNode_Root           0
  420. #define MUIV_NListtree_FindUserData_ListNode_Active         -2
  421.  
  422. #define MUIV_NListtree_FindUserData_Flag_SameLevel          (1<<15)
  423. #define MUIV_NListtree_FindUserData_Flag_Visible            (1<<14)
  424. #define MUIV_NListtree_FindUserData_Flag_Activate           (1<<13)
  425. #define MUIV_NListtree_FindUserData_Flag_Selected           (1<<11)
  426. #define MUIV_NListtree_FindUserData_Flag_StartNode          (1<<10)
  427. #define MUIV_NListtree_FindUserData_Flag_Reverse            (1<<9)
  428.  
  429.  
  430. #define MUIV_NListtree_GetEntry_ListNode_Root               0
  431. #define MUIV_NListtree_GetEntry_ListNode_Active             -2
  432. #define MUIV_NListtree_GetEntry_TreeNode_Active             -3
  433.  
  434. #define MUIV_NListtree_GetEntry_Position_Head               0
  435. #define MUIV_NListtree_GetEntry_Position_Tail               -1
  436. #define MUIV_NListtree_GetEntry_Position_Active             -2
  437. #define MUIV_NListtree_GetEntry_Position_Next               -3
  438. #define MUIV_NListtree_GetEntry_Position_Previous           -4
  439. #define MUIV_NListtree_GetEntry_Position_Parent             -5
  440.  
  441. #define MUIV_NListtree_GetEntry_Flag_SameLevel              (1<<15)
  442. #define MUIV_NListtree_GetEntry_Flag_Visible                (1<<14)
  443.  
  444.  
  445. #define MUIV_NListtree_GetNr_TreeNode_Active                -2
  446.  
  447. #define MUIV_NListtree_GetNr_Flag_CountAll                  (1<<15)
  448. #define MUIV_NListtree_GetNr_Flag_CountLevel                (1<<14)
  449. #define MUIV_NListtree_GetNr_Flag_CountList                 (1<<13)
  450. #define MUIV_NListtree_GetNr_Flag_ListEmpty                 (1<<12)
  451. #define MUIV_NListtree_GetNr_Flag_Visible                   (1<<11)
  452.  
  453.  
  454. #define MUIV_NListtree_Insert_ListNode_Root                 0
  455. #define MUIV_NListtree_Insert_ListNode_Active               -2
  456. #define MUIV_NListtree_Insert_ListNode_LastInserted         -3
  457. #define MUIV_NListtree_Insert_ListNode_ActiveFallback       -4
  458.  
  459. #define MUIV_NListtree_Insert_PrevNode_Head                 0
  460. #define MUIV_NListtree_Insert_PrevNode_Tail                 -1
  461. #define MUIV_NListtree_Insert_PrevNode_Active               -2
  462. #define MUIV_NListtree_Insert_PrevNode_Sorted               -4
  463.  
  464. #define MUIV_NListtree_Insert_Flag_Active                   (1<<13)
  465. #define MUIV_NListtree_Insert_Flag_NextNode                 (1<<12)
  466.  
  467.  
  468. #define MUIV_NListtree_Move_OldListNode_Root                0
  469. #define MUIV_NListtree_Move_OldListNode_Active              -2
  470.  
  471. #define MUIV_NListtree_Move_OldTreeNode_Head                0
  472. #define MUIV_NListtree_Move_OldTreeNode_Tail                -1
  473. #define MUIV_NListtree_Move_OldTreeNode_Active              -2
  474.  
  475. #define MUIV_NListtree_Move_NewListNode_Root                0
  476. #define MUIV_NListtree_Move_NewListNode_Active              -2
  477.  
  478. #define MUIV_NListtree_Move_NewTreeNode_Head                0
  479. #define MUIV_NListtree_Move_NewTreeNode_Tail                -1
  480. #define MUIV_NListtree_Move_NewTreeNode_Active              -2
  481. #define MUIV_NListtree_Move_NewTreeNode_Sorted              -4
  482.  
  483. #define MUIV_NListtree_Move_Flag_KeepStructure              (1<<13)
  484.  
  485.  
  486. #define MUIV_NListtree_Open_ListNode_Root                   0
  487. #define MUIV_NListtree_Open_ListNode_Parent                 -1
  488. #define MUIV_NListtree_Open_ListNode_Active                 -2
  489. #define MUIV_NListtree_Open_TreeNode_Head                   0
  490. #define MUIV_NListtree_Open_TreeNode_Tail                   -1
  491. #define MUIV_NListtree_Open_TreeNode_Active                 -2
  492. #define MUIV_NListtree_Open_TreeNode_All                    -3
  493.  
  494.  
  495.  
  496. #define MUIV_NListtree_Remove_ListNode_Root                 0
  497. #define MUIV_NListtree_Remove_ListNode_Active               -2
  498. #define MUIV_NListtree_Remove_TreeNode_Head                 0
  499. #define MUIV_NListtree_Remove_TreeNode_Tail                 -1
  500. #define MUIV_NListtree_Remove_TreeNode_Active               -2
  501. #define MUIV_NListtree_Remove_TreeNode_All                  -3
  502. #define MUIV_NListtree_Remove_TreeNode_Selected             -4
  503.  
  504. #define MUIV_NListtree_Remove_Flag_NoActive                 (1<<13)
  505.  
  506.  
  507.  
  508.  
  509. #define MUIV_NListtree_Rename_TreeNode_Active               -2
  510.  
  511. #define MUIV_NListtree_Rename_Flag_User                     (1<<8)
  512. #define MUIV_NListtree_Rename_Flag_NoRefresh                (1<<9)
  513.  
  514.  
  515. #define MUIV_NListtree_Sort_ListNode_Root                   0
  516. #define MUIV_NListtree_Sort_ListNode_Active                 -2
  517. #define MUIV_NListtree_Sort_TreeNode_Active                 -3
  518.  
  519. #define MUIV_NListtree_Sort_Flag_RecursiveOpen              (1<<13)
  520. #define MUIV_NListtree_Sort_Flag_RecursiveAll               (1<<12)
  521.  
  522.  
  523. #define MUIV_NListtree_TestPos_Result_None                  0
  524. #define MUIV_NListtree_TestPos_Result_Above                 1
  525. #define MUIV_NListtree_TestPos_Result_Below                 2
  526. #define MUIV_NListtree_TestPos_Result_Onto                  3
  527. #define MUIV_NListtree_TestPos_Result_Sorted                4
  528.  
  529. #define MUIV_NListtree_Redraw_Active                        -1
  530. #define MUIV_NListtree_Redraw_All                           -2
  531.  
  532. #define MUIV_NListtree_Redraw_Flag_Nr                       (1<<15)
  533.  
  534. #define MUIV_NListtree_Select_Active                        -1
  535. #define MUIV_NListtree_Select_All                           -2
  536. #define MUIV_NListtree_Select_Visible                       -3
  537.  
  538. #define MUIV_NListtree_Select_Off                           0
  539. #define MUIV_NListtree_Select_On                            1
  540. #define MUIV_NListtree_Select_Toggle                        2
  541. #define MUIV_NListtree_Select_Ask                           3
  542.  
  543. #define MUIV_NListtree_Select_Flag_Force                    (1<<15)
  544.  
  545.  
  546. #define MUIV_NListtree_NextSelected_Start                   -1
  547. #define MUIV_NListtree_NextSelected_End                     -1
  548.  
  549.  
  550. #define MUIV_NListtree_Copy_SourceListNode_Root             0
  551. #define MUIV_NListtree_Copy_SourceListNode_Active           -2
  552.  
  553. #define MUIV_NListtree_Copy_SourceTreeNode_Head             0
  554. #define MUIV_NListtree_Copy_SourceTreeNode_Tail             -1
  555. #define MUIV_NListtree_Copy_SourceTreeNode_Active           -2
  556.  
  557. #define MUIV_NListtree_Copy_DestListNode_Root               0
  558. #define MUIV_NListtree_Copy_DestListNode_Active             -2
  559.  
  560. #define MUIV_NListtree_Copy_DestTreeNode_Head               0
  561. #define MUIV_NListtree_Copy_DestTreeNode_Tail               -1
  562. #define MUIV_NListtree_Copy_DestTreeNode_Active             -2
  563. #define MUIV_NListtree_Copy_DestTreeNode_Sorted             -4
  564.  
  565. #define MUIV_NListtree_Copy_Flag_KeepStructure              (1<<13)
  566.  
  567.  
  568. #define MUIV_NListtree_PrevSelected_Start                   -1
  569. #define MUIV_NListtree_PrevSelected_End                     -1
  570.  
  571.  
  572. #define MUIV_NListtree_CopyToClip_Active                    -1
  573.  
  574.  
  575. /*** Hook message structs ***/
  576.  
  577. struct MUIP_NListtree_CloseMessage
  578. {
  579.     ULONG HookID;
  580.     struct MUI_NListtree_TreeNode *TreeNode;
  581. };
  582.  
  583.  
  584. struct MUIP_NListtree_CompareMessage
  585. {
  586.     ULONG HookID;
  587.     struct MUI_NListtree_TreeNode *TreeNode1;
  588.     struct MUI_NListtree_TreeNode *TreeNode2;
  589.     LONG SortType;
  590. };
  591.  
  592.  
  593. struct MUIP_NListtree_ConstructMessage
  594. {
  595.     ULONG HookID;
  596.     STRPTR Name;
  597.     APTR UserData;
  598.     APTR MemPool;
  599.     ULONG Flags;
  600. };
  601.  
  602.  
  603. struct MUIP_NListtree_DestructMessage
  604. {
  605.     ULONG HookID;
  606.     STRPTR Name;
  607.     APTR UserData;
  608.     APTR MemPool;
  609.     ULONG Flags;
  610. };
  611.  
  612.  
  613. struct MUIP_NListtree_DisplayMessage
  614. {
  615.     ULONG   HookID;
  616.     struct  MUI_NListtree_TreeNode *TreeNode;
  617.     LONG    EntryPos;
  618.     STRPTR  *Array;
  619.     STRPTR  *Preparse;
  620. };
  621.  
  622.  
  623. struct MUIP_NListtree_CopyToClipMessage
  624. {
  625.     ULONG   HookID;
  626.     struct  MUI_NListtree_TreeNode *TreeNode;
  627.     LONG    Pos;
  628.     LONG    Unit;
  629. };
  630.  
  631.  
  632. struct MUIP_NListtree_FindNameMessage
  633. {
  634.     ULONG   HookID;
  635.     STRPTR  Name;
  636.     STRPTR  NodeName;
  637.     APTR    UserData;
  638.     ULONG   Flags;
  639. };
  640.  
  641.  
  642. struct MUIP_NListtree_FindUserDataMessage
  643. {
  644.     ULONG   HookID;
  645.     APTR    User;
  646.     APTR    UserData;
  647.     STRPTR  NodeName;
  648.     ULONG   Flags;
  649. };
  650.  
  651.  
  652. struct MUIP_NListtree_OpenMessage
  653. {
  654.     ULONG HookID;
  655.     struct MUI_NListtree_TreeNode *TreeNode;
  656. };
  657.  
  658.  
  659. struct MUIP_NListtree_MultiTestMessage
  660. {
  661.     ULONG HookID;
  662.     struct MUI_NListtree_TreeNode *TreeNode;
  663.     LONG    SelType,
  664.             SelFlags,
  665.             CurrType;
  666. };
  667.  
  668. #endif /* NLISTTREE_MCC_H */
  669.